package site.isscloud.common.core.service;

import java.util.List;
import java.util.Map;

/**
 * Excel导入服务接口
 */
public interface IExcelImportService<T> {

    /**
     * 导入数据
     *
     * @param dataList 数据列表
     * @param updateSupport 是否更新已存在的数据
     * @param params 额外参数
     * @return 导入结果消息
     */
    String importData(List<T> dataList, Boolean updateSupport, Map<String, Object> params);

    /**
     * 数据验证
     *
     * @param data 数据对象
     * @return 验证错误信息，返回null表示验证通过
     */
    String validateData(T data);

    /**
     * 处理数据关系（如父子关系等）
     *
     * @param data 数据对象
     * @param processedData 已处理的数据映射
     * @param existingData 已存在的数据映射
     */
    void processDataRelations(T data, Map<String, Object> processedData, Map<String, Object> existingData);
}